This invention relates to a distributed computing system, and particularly but not exclusively to such a system used for control of a telecommunication network.
A distributed computing system for control of a telecommunications network is described in xe2x80x9cTwenty-twenty visionxe2x80x94software architectures for intelligence in the 21st centuryxe2x80x9d, P. A. Martin, BT Technol J Vol 13 No. 2 April 1995, by the inventor of the present invention. Further inventions concerning such a system are disclosed in our earlier PCT applications WO 97/26595 and WO 97/26596. Additional inventive detail is disclosed in earlier PCT application GB 97/02606. All of the foregoing were invented by the present inventor and assigned to the present applicant, and all are incorporated herein by reference in their entirety.
Where a data record (such as an object comprising data accessible by associated codes stored in relation to the data) can be held on any of a number of different computers, one computer wishing to access such a record held on another needs to be able to determine which computer the object is held on. Where, additionally, objects may be moved from one computer to another (as in the above described systems) it is necessary to track the locations of the objects as they move.
Telecommunications networks are increasingly required to support high bandwidth, low delay information flow. The bandwidth required is rapidly progressing from kilobits per second to megabits per second and even, for some applications, gigabits per second (particularly, for example, for video on demand; animated shared simulations, and distributed computing).
To provide xe2x80x9cintelligent networkxe2x80x9d facilitates such as call redirection to particular numbers, computer programs run on a number of host computers (up to 100, for example) connected with switching centres. The way in which services are to be provided for particular customers (for example, a particular number to which calls for a customer are to be routed) depends upon data stored in relation to that customer on the host computers. Thus, there may be many millions of subscriber records on tens or hundreds of host computers.
A description of object oriented technology will be found in, for example, BT Technol J Vol. 11 No. 3 (July 1993), xe2x80x9cObject oriented technologyxe2x80x9d, edited by E. L. Cusack and E. S. Cordingley. Although the term is not always used with precision, object oriented computing here refers to the computing technique in which data is stored in xe2x80x9cencapsulatedxe2x80x9d form in which, rather than being directly accessible by a calling program or routine, the data is accessible only by a limited part of a program which can read, write and edit the data. A record of data and its associated computer code are referred to as an xe2x80x9cobjectxe2x80x9d. Communication to and from an object is generally by xe2x80x9cmessage passingxe2x80x9d; that is, a call to the object passes data values and invokes the operation of one of the programs comprised within the object, which then returns data values.
Object oriented techniques have not widely been applied to distributed processing. A summary of the state of the art in this respect may be found in xe2x80x9cObject oriented Languages, Systems and Applicationsxe2x80x9d; Blair G. et al, Pitman Publishing, London, 1991 (ISBN 0-273-03132-5) and particularly in Chapter 9 at pages 223-243; xe2x80x9cDistributed systems and objectsxe2x80x9d; David Hutchison and Jonathan Walpole.
It will be appreciated that in the control of telecommunications networks, where on the order of 100 million subscriber records and 100 Million terminal equipment records may be kept (in addition to records of each routing device, and other data such as billing records) the signalling overhead in tracking moving records may be substantial.
One solution might be to provide a single, central object location database. However, where large numbers of objects and accessing computers are provided, as is the case in the control of telecommunications networks, this would provide a signalling bottleneck.
Another solution might be to issue broadcast requests to access objects. However, again, this can lead to contention and bottlenecking.
In the above mentioned applications it is proposed to provide, in every host computer within the network, a table storing the locations of every object in the network. The table comprises, for each object, the name of the object; the computer on which the object current resides; and the computer on which the object was created.
After an object is moved, a message is sent to all other host computers, which correspondingly update their location tables. If any host computer has an out-of-date table, so that the location stored is not current, it is able to request the identity of the object from the host computer on which it was created, which is then able to refer to the computer to which the object has moved.
This proposal has the advantage that any computer usually needs only access its local table to determine where any object is stored. The present invention also makes use of this principle.
However, a first disadvantage with the arrangement described is that it may involve a substantial volume of storage within memory, since for each object, the object name and the identities of two computers are stored.
With a very large number of objects, the amount of storage required may be too large to be accommodated within a single Unix(trademark) process, for example. If this is the case, then not only is the volume of storage large, but the access time may also be increased.
Accordingly, in one aspect, the present invention improves upon that arrangement by providing that each newly created object is allocated a name which indicates the host computer on which it was created. With this arrangement, it is possible to simplify the location table stored at each computer in two respects; firstly, by eliminating the need for storage of the identity of the host computer on which each object was created, and secondly, by being able to partition the table into spaces for each host computer which make it possible to dispense with the need to store the object name.
In an embodiment, therefore, where no more than 255 host computers are provided, it has been found possible to store the location record for each object within one byte, so that location data for 100 million records can be stored within 100 Megabytes, enabling the table within each host computer readily to be stored within the working RAM for a process.
Another limitation of the arrangement described in our earlier patent applications is that the signalling which takes place to update the position of an object is broadcast in nature; that is, the update position is transmitted to all further host computers when an object is either moved or created.
In another aspect, the present invention provides that each computer logs the accessing of each object by other computers, so as to build up information on which other computers commonly access each object. This information is utilised after moving an object, to ensure that those other computers which use the object are informed.
In one case, only those other computers which have accessed an object are informed, which leads to a reduction in the volume of signalling over the network.
In another embodiment, the computers logged as accessing an object are informed either earlier or more often than others, thus achieving either a lower signalling overhead, or a greater reliability in signalling to those computers for which it is more important to have knowledge of the object""s position, and a lower volume of processing to be performed by each computer, since computers are not always required to perform location updating on those objects which they never access.
For example, the computers logged as accessing an object may be informed on, or shortly after, a move of the object occurs, and then all computers may be informed, on a periodic basis, of all object changes which have occurred, by multicasting a message to all the computers indicating a plurality of object moves. Since a single message to each computer carries a plurality of object move data, the signalling overheard is reduced as separate address headers are not required for each item of object move data (as would be the case if each object move were signalled to all computers after it occurred).